export function flexColumnWidth(label, prop, table) {
  const arr = table.map((x) => x[prop]);
  arr.push(label); // 把每列的表头也加进去算

  // 法一：直接计算字符长度
  // let contentMax = 0;
  // for (let i = 0; i < arr.length; i++) {
  //   if ([null, undefined].includes(arr[i])) {
  //     continue;
  //   }

  //   let now_temp_length = getStrSize(arr[i])
  //   if (now_temp_length > contentMax) {
  //     contentMax = now_temp_length;
  //   }
  // }


  // 法二：创建临时DOM，获取该DOM尺寸作为宽度
  let contentMax = arr.reduce((acc, item) => {
    if (item) {
      let width = 0;
      const span = document.createElement("span");
      span.innerText = item;
      span.className = "getTextWidth";
      document.querySelector("body").appendChild(span);
      width = document.querySelector(".getTextWidth").offsetWidth;
      document.querySelector(".getTextWidth").remove();
      if (acc < width) {
        acc = width;
      }
      if (label == "确认日期"){
        if (item == "确认日期") console.log("是确认日期", width, arr);
        else console.log("不是确认日期", width);
      }
    }
    return acc;
  }, 0);
  return contentMax +4;
  // return contentMax +4+ "px";
}

function getStrSize(str) {
  let contentSize = 0;
  for (const char of JSON.stringify(str)) {
    if ((char >= "A" && char <= "Z") || (char >= "a" && char <= "z")) {
      // 如果是英文字符，为字符分配8个单位宽度
      contentSize += 8;
    } else if (char >= "\u4e00" && char <= "\u9fa5") {
      // 如果是中文字符，为字符分配14个单位宽度
      contentSize += 14;
    } else {
      // 其他种类字符，为字符分配8个单位宽度
      contentSize += 8;
    }
  }
  return contentSize;
}
